import { MappingData } from './MappingData'

// TODO 通用参数
// *** flex 布局
const flexConfig = [
    { span: 24, formType: 'SELECT', name: 'align_items', label: 'align-items', rules: true, valueEnum: MappingData.Flex_items },
    { span: 24, formType: 'SELECT', name: 'align_content', label: 'align-content', rules: true, valueEnum: MappingData.Flex_content },
    { span: 24, formType: 'SELECT', name: 'justify_content', label: 'justify-content', rules: true, valueEnum: MappingData.Flex_justify },
    { span: 24, formType: 'SELECT', name: 'flex_direction', label: 'flex-direction', rules: true, valueEnum: MappingData.Flex_direction },
    { span: 24, formType: 'SELECT', name: 'flex_wrap', label: 'flex-wrap', rules: true, valueEnum: MappingData.Flex_wrap },
]


// *** 模块设置 
const modelConfig = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: '主表编号', rules: true },

    // { formType: 'TempTitle', label: '接口设置', name: 'modelConfig_api' },
    // { span: 24, formType: 'RADIO', name: ['model', 'api'], label: '接口方式', rules: true, valueEnum: MappingData.apiType },
    // { span: 24, formType: 'INPUT', name: ['model', 'apiName'], label: '接口名称', rules: true, jugdeField: ['model', 'api'], jugdeValue: [true] },
    // {
    //     span: 24, formType: 'RADIO', name: ['model', 'apiMethod'], label: '请求方式', rules: true, valueEnum: MappingData.System__Method,
    //     jugdeField: ['model', 'api'], jugdeValue: [false]
    // },
    // { span: 24, formType: 'INPUT', name: ['model', 'apiUrl'], label: '接口地址', rules: true, tooltip: '获取数据接口', jugdeField: ['model', 'api'], jugdeValue: [false] },
    // { span: 24, formType: 'INPUT', name: ['model', 'apiParams'], label: '额外参数', tooltip: '每次请求自动带入参数', jugdeField: ['model', 'api'], jugdeValue: [false] },
    // { span: 24, formType: 'INPUT', name: ['model', 'level'], label: '参数层级' },


    { formType: 'TempTitle', label: '小窗设置', name: 'modelConfig_window' },
    { span: 24, formType: 'RADIO', name: ['model', 'smallWindow'], label: '系统小窗', rules: true, valueEnum: MappingData.IsEnabledBool, tooltip: '大屏使用 \n覆盖标题与背景设置' },
    { span: 24, formType: 'INPUT', name: ['model', 'smallTitle'], label: '小窗标题', rules: true, jugdeField: ['model', 'smallWindow'], jugdeValue: [true] },
    { formType: 'TempTitle', label: '标题设置', name: 'modelConfig_title' },
    { span: 24, formType: 'RADIO', name: ['model', 'text'], label: '显示标题', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'INPUT', name: ['model', 'titleText'], label: '模块标题', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { span: 24, formType: 'COLOR', name: ['model', 'titleColor'], label: '标题颜色', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'titleSize'], label: '标题字号', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    {
        span: 24, formType: 'SELECT', name: ['model', 'titleFamily'], label: '标题字体', valueEnum: MappingData.Font__Family,
        jugdeField: ['model', 'text'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'RADIO', name: ['model', 'titleWeight'], label: '标题加粗', rules: true, valueEnum: MappingData.Font__WeightInt,
        jugdeField: ['model', 'text'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'RADIO', name: ['model', 'titleStyle'], label: '标题倾斜', rules: true, valueEnum: MappingData.Font__Style,
        jugdeField: ['model', 'text'], jugdeValue: [true]
    },
    { span: 24, formType: 'NUMBER', name: ['model', 'titleShadowX'], label: '阴影X轴', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'titleShadowY'], label: '阴影Y轴', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'titleShadowS'], label: '阴影尺寸', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { span: 24, formType: 'COLOR', name: ['model', 'titleShadowC'], label: '阴影颜色', rules: true, jugdeField: ['model', 'text'], jugdeValue: [true] },
    { formType: 'TempTitle', label: '背景设置', name: 'modelConfig_back' },
    { span: 24, formType: 'RADIO', name: ['model', 'background'], label: '显示背景', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: ['model', 'backColor'], label: '背景颜色', rules: true, jugdeField: ['model', 'background'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'backColorDeg'], label: '背景渐变', rules: true, jugdeField: ['model', 'background'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'backRadius'], label: '背景圆角', rules: true, jugdeField: ['model', 'background'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'backPadding'], label: '背景内填充', rules: true, jugdeField: ['model', 'background'], jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: ['model', 'backMargin'], label: '背景外间距', rules: true, jugdeField: ['model', 'background'], jugdeValue: [true] },
    {
        span: 24, formType: 'SELECT', name: ['model', 'backShadow'], label: '阴影等级', valueEnum: MappingData.Style__BoxShadow,
        jugdeField: ['model', 'background'], jugdeValue: [true]
    },
]

// *** 模块下导航信息
const navConfig = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: '主表编号', rules: true },
    {
        span: 24, formType: 'LIST', name: 'nav', label: '导航信息',
        children: [
            { span: 24, formType: 'HIDDEN', name: 'uuid', label: '唯一主键' },
            { span: 24, formType: 'RADIO', name: 'status', label: '是否渲染', rules: true, valueEnum: MappingData.IsEnabledBool },
            { span: 24, formType: 'INPUT', name: 'nav_title', label: '导航标题', rules: true, jugdeField: ['status'], jugdeValue: [true] },

        ]
    },
]

// !!! XXX 操作模块
const OptionsConfig = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: '主表编号', rules: true },
    { formType: 'TempTitle', label: '参数设置', name: 'Options01__params' },
    { span: 24, formType: 'INPUT', name: 'params', label: '默认参数' },
    { span: 24, formType: 'INPUT', name: 'value', label: '默认值' },
    {
        span: 24, formType: 'LIST', name: 'urlList', label: '对应接口', rules: true,
        children: [{ span: 24, formType: 'INPUT', name: 'urlName', label: '接口名称', rules: true }]
    },
    { formType: 'TempTitle', label: '导航列表', name: 'Options01__navList' },
    { span: 24, formType: 'RADIO', name: 'listType', label: '数据来源', rules: true, valueEnum: MappingData.System__MapTypeA02 },
    // 数据映射
    {
        span: 24, formType: 'LIST', name: 'dataList', label: '对应接口', jugdeField: 'listType', jugdeValue: ['DataMapping'],
        children: [
            { span: 24, formType: 'INPUT', name: 'dataValue', label: '参数值', rules: true },
            { span: 24, formType: 'INPUT', name: 'dataMapping', label: '映射名称', rules: true },
        ]
    },
    // 接口映射
    { span: 24, formType: 'INPUT', name: 'apiUrl', label: '接口地址', rules: true, jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    {
        span: 24, formType: 'RADIO', name: 'apiMethod', label: '请求方式', rules: true, valueEnum: MappingData.System__Method,
        jugdeField: 'listType', jugdeValue: ['ApiMapping']
    },
    { span: 24, formType: 'INPUT', name: 'apiLevel', label: '数据层级', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    { span: 24, formType: 'INPUT', name: 'apiParams', label: '额外参数', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    { span: 24, formType: 'INPUT', name: 'apiHttp', label: '额外域名', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    { span: 24, formType: 'INPUT', name: 'apiKey', label: '映射键', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    { span: 24, formType: 'INPUT', name: 'apiValue', label: '映射值', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    { span: 24, formType: 'INPUT', name: 'apiChildren', label: '子级数组', jugdeField: 'listType', jugdeValue: ['ApiMapping'] },
    {
        span: 24, formType: 'RADIO', name: 'addEmpty', label: '是否初始化空数据', rules: true, valueEnum: MappingData.IsEnabledBool,
        jugdeField: 'listType', jugdeValue: ['ApiMapping']
    },
    { span: 24, formType: 'INPUT', name: 'addEmptyTitle', label: '空数据名称', jugdeField: 'listType', jugdeValue: ['ApiMapping'] }
]

// *** 类Nav导模块
const Options01 = [
    ...OptionsConfig,
    { formType: 'TempTitle', label: '渲染方式', name: 'Options01__render' },
    { span: 24, formType: 'RADIO', name: 'renderType', label: '渲染方式', rules: true, valueEnum: MappingData.System__NavRenderType },
    // flex 布局
    {
        span: 24, formType: 'SELECT', name: 'align_items', label: 'align-items', rules: true, valueEnum: MappingData.Flex_items,
        jugdeField: 'renderType', jugdeValue: ['flex']
    },
    {
        span: 24, formType: 'SELECT', name: 'align_content', label: 'align-content', rules: true, valueEnum: MappingData.Flex_content,
        jugdeField: 'renderType', jugdeValue: ['flex']
    },
    {
        span: 24, formType: 'SELECT', name: 'justify_content', label: 'justify-content', rules: true, valueEnum: MappingData.Flex_justify,
        jugdeField: 'renderType', jugdeValue: ['flex']
    },
    {
        span: 24, formType: 'SELECT', name: 'flex_direction', label: 'flex-direction', rules: true, valueEnum: MappingData.Flex_direction,
        jugdeField: 'renderType', jugdeValue: ['flex']
    },
    {
        span: 24, formType: 'SELECT', name: 'flex_wrap', label: 'flex-wrap', rules: true, valueEnum: MappingData.Flex_wrap,
        jugdeField: 'renderType', jugdeValue: ['flex']
    },
    // swiper 样式
    { formType: 'TempTitle', label: '导航样式', name: 'Options01__style' },
    { span: 24, formType: 'NUMBER', name: 'nav_height', label: '导航高度', rules: true },
    { span: 24, formType: 'INPUT', name: 'nav_padding', label: '导航内填充', rules: true },
    { span: 24, formType: 'INPUT', name: 'nav_margin', label: '导航外边距', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_backgroun', label: '导航背景色', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_activeBack', label: '激活背景色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_backgrounDeg', label: '背景色角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_borderRadius', label: '边框圆角', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_borderSize', label: '边框尺寸', rules: true },
    { span: 24, formType: 'RADIO', name: 'nav_borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType },
    { span: 24, formType: 'COLOR', name: 'nav_borderColor', label: '边框颜色', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_borderActive', label: '激活颜色', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_activeFill', label: '激活颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_fillDeg', label: '文字颜色角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'nav_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'nav_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'nav_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'nav_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'nav_shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'nav_shadowC', label: '阴影颜色', rules: true },
]

// *** 下拉选择器
const Options02 = [
    ...OptionsConfig,
    { formType: 'TempTitle', label: '布局设置', name: 'Options02__layout' },
    { span: 24, formType: 'RADIO', name: 'layout', label: '是否填满', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: 'width', label: '组件宽度', rules: true, jugdeField: 'layout', jugdeValue: [false] },
    { span: 24, formType: 'NUMBER', name: 'height', label: '组件高度', rules: true, jugdeField: 'layout', jugdeValue: [false] },
    {
        span: 24, formType: 'SELECT', name: 'align_items', label: 'align-items', rules: true, valueEnum: MappingData.Flex_items,
        jugdeField: 'layout', jugdeValue: [false]
    },
    {
        span: 24, formType: 'SELECT', name: 'align_content', label: 'align-content', rules: true, valueEnum: MappingData.Flex_content,
        jugdeField: 'layout', jugdeValue: [false]
    },
    {
        span: 24, formType: 'SELECT', name: 'justify_content', label: 'justify-content', rules: true, valueEnum: MappingData.Flex_justify,
        jugdeField: 'layout', jugdeValue: [false]
    },
    {
        span: 24, formType: 'SELECT', name: 'flex_direction', label: 'flex-direction', rules: true, valueEnum: MappingData.Flex_direction,
        jugdeField: 'layout', jugdeValue: [false]
    },
    {
        span: 24, formType: 'SELECT', name: 'flex_wrap', label: 'flex-wrap', rules: true, valueEnum: MappingData.Flex_wrap,
        jugdeField: 'layout', jugdeValue: [false]
    },
    {
        span: 24, formType: 'RADIO', name: 'additional', label: '额外标题', rules: true, valueEnum: MappingData.IsEnabledBool,
        jugdeField: 'layout', jugdeValue: [false]
    },
    { span: 24, formType: 'INPUT', name: 'add_title', label: '额外标题', jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'INPUT', name: 'add_margin', label: '外边距', jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'COLOR', name: 'add_fill', label: '文字颜色', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: 'add_fillDeg', label: '文字角度', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: 'add_fontSize', label: '文字字号', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    {
        span: 24, formType: 'SELECT', name: 'add_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family,
        jugdeField: 'additional', jugdeValue: [true]
    },
    {
        span: 24, formType: 'RADIO', name: 'add_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt,
        jugdeField: 'additional', jugdeValue: [true]
    },
    {
        span: 24, formType: 'RADIO', name: 'add_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style,
        jugdeField: 'additional', jugdeValue: [true]
    },
    { span: 24, formType: 'NUMBER', name: 'add_shadowX', label: 'X轴偏移', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: 'add_shadowY', label: 'Y轴偏移', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: 'add_shadowS', label: '阴影尺寸', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { span: 24, formType: 'COLOR', name: 'add_shadowC', label: '阴影颜色', rules: true, jugdeField: 'additional', jugdeValue: [true] },
    { formType: 'TempTitle', label: '样式设置', name: 'Options02__render' },
    { span: 24, formType: 'NUMBER', name: 'borderRadius', label: '圆角尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'backgroun', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'backgrounDeg', label: '背景角度', rules: true },
    { span: 24, formType: 'RADIO', name: 'align', label: '文字对齐方式', rules: true, valueEnum: MappingData.System__AlignmentLCR },
    { span: 24, formType: 'COLOR', name: 'fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'fillDeg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'shadowC', label: '阴影颜色', rules: true },
    { span: 24, formType: 'RADIO', name: 'icon', label: '下拉图标', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: 'iconColor', label: '图标颜色', rules: true, jugdeField: 'icon', jugdeValue: [true] },
    { span: 24, formType: 'NUMBER', name: 'iconSize', label: '图标尺寸', rules: true, jugdeField: 'icon', jugdeValue: [true] },
]

// *** 分页器 
const Options03 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { span: 24, formType: 'INPUT', name: 'data_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'data_dataLevel', label: '数据层级' },
    { span: 24, formType: 'INPUT', name: 'data_dataSize', label: '分页数量字段' },
    { span: 24, formType: 'INPUT', name: 'params', label: '默认参数' },
    { span: 24, formType: 'INPUT', name: 'value', label: '默认值' },
    {
        span: 24, formType: 'LIST', name: 'urlList', label: '对应接口', rules: true,
        children: [{ span: 24, formType: 'INPUT', name: 'urlName', label: '接口名称', rules: true }]
    },
    { formType: 'TempTitle', label: '提示信息', name: 'Options03__total' },
    { span: 24, formType: 'RADIO', name: 'showTotal', label: '是否显示数量', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: 'total_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'total_deg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'total_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'total_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'total_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'total_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'total_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'total_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'total_shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'total_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '分页器样式', name: 'Options03__pagin' },
    { span: 24, formType: 'NUMBER', name: 'pnSize', label: '上下页尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'pnColor', label: '上下页颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'itemSize', label: '分页尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'itemBack', label: '分页背景', rules: true },
    { span: 24, formType: 'NUMBER', name: 'itemDeg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'itemRadius', label: '分页圆角', rules: true },
    { span: 24, formType: 'NUMBER', name: 'itemBorder', label: '边框尺寸', rules: true },
    { span: 24, formType: 'RADIO', name: 'itemType', label: '边框样式', rules: true, valueEnum: MappingData.Style__BorderType },
    { span: 24, formType: 'COLOR', name: 'itemColor', label: '边框颜色', rules: true },

    { span: 24, formType: 'COLOR', name: 'item_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'item_deg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'item_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'item_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'item_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'item_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'item_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'item_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'item_shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'item_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '激活样式', name: 'Options03__active' },
    { span: 24, formType: 'COLOR', name: 'activeBack', label: '分页背景', rules: true },
    { span: 24, formType: 'COLOR', name: 'activefill', label: '文字颜色', rules: true },
]

// 定制通用属性
// *** 交投组织机构树
const OptionsComA01 = [
    ...OptionsConfig,
    { formType: 'TempTitle', label: '背景设置', name: 'OptionsComA01__Back' },
    { span: 24, formType: 'INPUT', name: 'padding', label: '内部填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'backgroun', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'backgrounDeg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'borderRadius', label: '圆角尺寸', rules: true },
    { span: 24, formType: 'NUMBER', name: 'borderSize', label: '边框尺寸', rules: true },
    { span: 24, formType: 'RADIO', name: 'borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType },
    { span: 24, formType: 'COLOR', name: 'borderColor', label: '边框颜色', rules: true },
    { formType: 'TempTitle', label: '头部标题', name: 'OptionsComA01__Top' },
    { span: 24, formType: 'RADIO', name: 'status', label: '是否渲染', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'INPUT', name: 'top_title', label: '标题内容', rules: true },
    { span: 24, formType: 'INPUT', name: 'top_padding', label: '内部填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'top_backgroun', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_backgrounDeg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_borderSize', label: '边框尺寸', rules: true },
    { span: 24, formType: 'RADIO', name: 'top_borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType },
    { span: 24, formType: 'COLOR', name: 'top_borderColor', label: '边框颜色', rules: true },
    { span: 24, formType: 'COLOR', name: 'top_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_fillDeg', label: '颜色角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'top_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'top_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'top_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'top_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'top_shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'top_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '树形样式-默认', name: 'OptionsComA01__Tree' },
    { span: 24, formType: 'NUMBER', name: 'tree_iconSize', label: '图标尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'tree_iconColor', label: '图标颜色', rules: true },
    { span: 24, formType: 'INPUT', name: 'tree_padding', label: '内部填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'tree_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'tree_fillDeg', label: '颜色角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'tree_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'tree_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'tree_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'tree_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'tree_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'tree_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'tree_shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'tree_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '树形样式-激活', name: 'OptionsComA01__Active' },
    { span: 24, formType: 'COLOR', name: 'active_backgroun', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'active_backgrounDeg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'active_borderRadius', label: '背景圆角', rules: true },
    { span: 24, formType: 'NUMBER', name: 'active_borderSize', label: '边框尺寸', rules: true },
    { span: 24, formType: 'RADIO', name: 'active_borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType },
    { span: 24, formType: 'COLOR', name: 'active_borderColor', label: '边框颜色', rules: true },
    { span: 24, formType: 'COLOR', name: 'active_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'active_fillDeg', label: '颜色角度', rules: true },
]

// !!! 数据配置参数
const dataConfig = [
    { span: 24, formType: 'INPUT', name: 'data_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'data_dataLevel', label: '数据层级' },
    { span: 24, formType: 'RADIO', name: 'data_dataType', label: '数据类型', rules: true, valueEnum: MappingData.dataType },
    // 对象类型 -> arr
    {
        span: 24, formType: 'LIST', name: 'data_obj', label: '对象数值', jugdeField: 'data_dataType', jugdeValue: ['object'],
        children: [
            { span: 24, formType: 'RADIO', name: 'iconAimage', label: '额外图标', rules: true, valueEnum: MappingData.System__FilesType },
            { span: 24, formType: 'TempICON', name: 'icon', label: '图标信息', jugdeField: 'iconAimage', jugdeValue: ['icon'], },
            { span: 24, formType: 'INPUT', name: 'image', label: '图片地址', jugdeField: 'iconAimage', jugdeValue: ['img'], },
            { span: 24, formType: 'COLOR', name: 'fill', label: '文字颜色', rules: true },
            { span: 24, formType: 'INPUT', name: 'describe', label: '描述信息', rules: true },
            { span: 24, formType: 'INPUT', name: 'field', label: '数据字段', rules: true },
            { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息' },
        ]
    },
    // 数组类型 -> arr
    { span: 24, formType: 'INPUT', name: 'data_describe', label: '描述信息', rules: true, jugdeField: 'data_dataType', jugdeValue: ['array'] },
    { span: 24, formType: 'INPUT', name: 'data_field', label: '渲染字段', rules: true, jugdeField: 'data_dataType', jugdeValue: ['array'] },

    {
        span: 24, formType: 'LIST', name: 'data_arr', label: '数组额外数据', jugdeField: 'data_dataType', jugdeValue: ['array'],
        children: [
            { span: 24, formType: 'INPUT', name: 'field', label: '锚定参数' },
            { span: 24, formType: 'RADIO', name: 'iconAimage', label: '额外图标', rules: true, valueEnum: MappingData.System__FilesType },
            { span: 24, formType: 'TempICON', name: 'icon', label: '图标信息', jugdeField: 'iconAimage', jugdeValue: ['icon'] },
            { span: 24, formType: 'INPUT', name: 'image', label: '图片地址', jugdeField: 'iconAimage', jugdeValue: ['img'] },
            { span: 24, formType: 'COLOR', name: 'fill', label: '文字颜色', rules: true },
            { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息' },
        ]
    },



]

// !!! XXX 模块配置 (单独模块配置)
// ??? 定制模块信息
// *** 交投AI预警统计
const CustomizeA01 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { span: 24, formType: 'INPUT', name: 'list_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'list_dataLevel', label: '数据层级' },
    { span: 24, formType: 'INPUT', name: 'image_left', label: '左侧图片', rules: true },
    { span: 24, formType: 'INPUT', name: 'image_right', label: '右侧图片', rules: true },
    { span: 24, formType: 'NUMBER', name: 'width', label: '中心占比(%)', rules: true },
    { span: 24, formType: 'NUMBER', name: 'height', label: '中心高度', rules: true },
    { span: 24, formType: 'COLOR', name: 'contentColor', label: '中心颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'contentDeg', label: '渐变角度', rules: true },
    { span: 24, formType: 'INPUT', name: 'contentPadding', label: '中心内填充', rules: true },
    { span: 24, formType: 'TEXTAREA', name: 'content', label: '显示内容', rules: true },
    { span: 24, formType: 'COLOR', name: 'fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'shadowC', label: '阴影颜色', rules: true },
    {
        span: 24, formType: 'LIST', name: 'numberArr', label: '数值设置',
        children: [
            { span: 24, formType: 'INPUT', name: 'dataField', label: '字段', rules: true },
            { span: 24, formType: 'COLOR', name: 'number_fill', label: '文字颜色', rules: true },
            { span: 24, formType: 'NUMBER', name: 'number_fontSize', label: '文字字号', rules: true },
            { span: 24, formType: 'SELECT', name: 'number_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
            { span: 24, formType: 'RADIO', name: 'number_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
            { span: 24, formType: 'RADIO', name: 'number_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
            { span: 24, formType: 'NUMBER', name: 'number_shadowX', label: 'X轴偏移', rules: true },
            { span: 24, formType: 'NUMBER', name: 'number_shadowY', label: 'Y轴偏移', rules: true },
            { span: 24, formType: 'NUMBER', name: 'number_shadowB', label: '阴影尺寸', rules: true },
            { span: 24, formType: 'COLOR', name: 'number_shadowC', label: '阴影颜色', rules: true },
        ]
    }
]

// ??? 图文列表模块
// *** 上下结构A01
const ImageTextA01 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { span: 24, formType: 'RADIO', name: 'flexContent', label: '图片在上', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'INPUT', name: 'list_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'list_dataLevel', label: '数据层级' },
    { formType: 'TempTitle', label: '图片设置', name: 'ImageTextA01_image' },
    { span: 24, formType: 'INPUT', name: 'image_url', label: '图片地址', rules: true },
    { span: 24, formType: 'NUMBER', name: 'image_width', label: '图片宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'image_height', label: '图片高度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'image_padding', label: '图片填充', rules: true },

    { formType: 'TempTitle', label: '图片描述', name: 'ImageTextA01_title' },
    { span: 24, formType: 'INPUT', name: 'image_title', label: '图片描述' },
    { span: 24, formType: 'COLOR', name: 'title_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'title_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'title_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'title_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'title_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'title_shadowC', label: '阴影颜色', rules: true },

    { formType: 'TempTitle', label: '文字设置', name: 'ImageTextA01_text' },
    { span: 24, formType: 'NUMBER', name: 'data_top', label: '上填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'data_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'data_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'data_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'data_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'data_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'data_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'data_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'data_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'data_shadowC', label: '阴影颜色', rules: true },


    // { formType: 'TempTitle', label: '渲染数据', name: 'ImageTextA01_list' },

]

// *** 列表块A02
const ImageTextA02 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { span: 24, formType: 'RADIO', name: 'flex', label: '布局设置', rules: true, valueEnum: MappingData.System__FlexDirection },
    { span: 24, formType: 'NUMBER', name: 'width', label: '宽度设置', rules: true },
    { span: 24, formType: 'NUMBER', name: 'padding_top', label: '上下内填充', rules: true },
    { span: 24, formType: 'NUMBER', name: 'padding_left', label: '左右内填充', rules: true },
    { span: 24, formType: 'NUMBER', name: 'margin_top', label: '上下外填充', rules: true },
    { span: 24, formType: 'NUMBER', name: 'margin_left', label: '左右外填充', rules: true },
    { formType: 'TempTitle', label: '渲染数据', name: 'ImageTextA02_list' },
    { span: 24, formType: 'INPUT', name: 'list_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'list_dataLevel', label: '数据层级' },
    { span: 24, formType: 'INPUT', name: 'list_padding', label: '左右填充', rules: true },
    { span: 24, formType: 'RADIO', name: 'list_dataType', label: '数据类型', rules: true, valueEnum: MappingData.dataType },
    {
        span: 24, formType: 'LIST', name: 'listArr', label: '对象数值', jugdeField: 'list_dataType', jugdeValue: ['object'],
        children: [
            { span: 24, formType: 'TempICON', name: 'icon', label: '图标信息' },
            { span: 24, formType: 'INPUT', name: 'describe', label: '描述信息', rules: true },
            { span: 24, formType: 'INPUT', name: 'field', label: '渲染字段', rules: true },
            { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息' },
        ]
    },
    { span: 24, formType: 'TempICON', name: 'icon', label: '图标信息', rules: true, jugdeField: 'list_dataType', jugdeValue: ['array'] },
    { span: 24, formType: 'INPUT', name: 'describe', label: '描述信息', rules: true, jugdeField: 'list_dataType', jugdeValue: ['array'] },
    { span: 24, formType: 'INPUT', name: 'field', label: '渲染字段', rules: true, jugdeField: 'list_dataType', jugdeValue: ['array'] },
    { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息', jugdeField: 'list_dataType', jugdeValue: ['array'] },
    // 背景设置
    { formType: 'TempTitle', label: '背景设置', name: 'ImageTextA02_back' },
    { span: 24, formType: 'COLOR', name: 'back_fill', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'back_deg', label: '宽度设置', rules: true },
    { span: 24, formType: 'RADIO', name: 'back_border', label: '背景边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: 'border_width', label: '边框宽度', rules: true, jugdeField: 'back_border', jugdeValue: [true] },
    {
        span: 24, formType: 'RADIO', name: 'border_type', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType,
        jugdeField: 'back_border', jugdeValue: [true]
    },
    { span: 24, formType: 'COLOR', name: 'border_color', label: '边框颜色', rules: true, jugdeField: 'back_border', jugdeValue: [true] },

    // 图标设置
    { formType: 'TempTitle', label: '图标设置', name: 'ImageTextA02_icon' },
    { span: 24, formType: 'COLOR', name: 'icon_fill', label: '图标颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'icon_size', label: '图标尺寸', rules: true },
    { span: 24, formType: 'NUMBER', name: 'icon_padding', label: '图标填充', rules: true },
    // 标题设置
    { formType: 'TempTitle', label: '标题设置', name: 'ImageTextA02_title' },
    { span: 24, formType: 'NUMBER', name: 'title_padding', label: '标题填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'title_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'title_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'title_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'title_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'title_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'title_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'title_shadowC', label: '阴影颜色', rules: true },
    // 数值设置
    { formType: 'TempTitle', label: '数值设置', name: 'ImageTextA02_field' },
    { span: 24, formType: 'COLOR', name: 'field_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'field_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'field_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'field_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'field_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'field_shadowC', label: '阴影颜色', rules: true },
    // 单位设置
    { formType: 'TempTitle', label: '单位设置', name: 'ImageTextA02_unit' },
    { span: 24, formType: 'COLOR', name: 'unit_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'unit_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'unit_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'unit_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'unit_shadowC', label: '阴影颜色', rules: true },
]

// *** 列表块A03
const ImageTextA03 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    ...flexConfig,
    { span: 24, formType: 'INPUT', name: 'list_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'list_dataLevel', label: '数据层级' },
    { span: 24, formType: 'NUMBER', name: 'list_width', label: '单组宽度', rules: true },
    { span: 24, formType: 'INPUT', name: 'list_padding', label: '单组内填充', rules: true },
    { span: 24, formType: 'INPUT', name: 'list_margin', label: '单组外间距', rules: true },
    { span: 24, formType: 'RADIO', name: 'list_dataType', label: '数据类型', rules: true, valueEnum: MappingData.dataType },
    {
        span: 24, formType: 'LIST', name: 'listArr', label: '对象数值', jugdeField: 'list_dataType', jugdeValue: ['object'],
        children: [
            { span: 24, formType: 'INPUT', name: 'describe', label: '描述信息', rules: true },
            { span: 24, formType: 'INPUT', name: 'field', label: '数据字段', rules: true },
            { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息' },
        ]
    },
    { span: 24, formType: 'INPUT', name: 'describe', label: '描述信息', rules: true, jugdeField: 'list_dataType', jugdeValue: 'array' },
    { span: 24, formType: 'INPUT', name: 'field', label: '渲染字段', rules: true, jugdeField: 'list_dataType', jugdeValue: 'array' },
    { span: 24, formType: 'INPUT', name: 'unit', label: '单位信息', jugdeField: 'list_dataType', jugdeValue: ['array'] },

    { formType: 'TempTitle', label: '描述文字设置', name: 'ImageTextA03_describe' },
    { span: 24, formType: 'COLOR', name: 'describe_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'describe_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'describe_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'describe_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'describe_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '数据文字设置', name: 'ImageTextA03_field' },
    { span: 24, formType: 'COLOR', name: 'field_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'field_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'field_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'field_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'field_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'field_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '单位文字设置', name: 'ImageTextA03_unit' },
    { span: 24, formType: 'COLOR', name: 'unit_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'unit_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'unit_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'unit_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'unit_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '辅助背景', name: 'ImageTextA03_back' },
    { span: 24, formType: 'COLOR', name: 'back_fill', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'back_deg', label: '旋转角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'back_height', label: '背景高度', rules: true },
    { span: 24, formType: 'SELECT', name: 'back_position', label: '定位位置', rules: true, valueEnum: MappingData.topORbtm },
    { span: 24, formType: 'NUMBER', name: 'back_distance', label: '定位距离', rules: true },
]
// *** 列表块A04
const ImageTextA04 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },

    { formType: 'TempTitle', label: '数据集合', name: 'ImageTextA04_data' },
    ...dataConfig,

    { formType: 'TempTitle', label: '全局设置', name: 'ImageTextA04_back' },
    ...flexConfig,

    { formType: 'TempTitle', label: '单条数据', name: 'ImageTextA04_partial' },
    { span: 24, formType: 'SELECT', name: 'partial_align_items', label: 'align-items', rules: true, valueEnum: MappingData.Flex_items },
    { span: 24, formType: 'SELECT', name: 'partial_align_content', label: 'align-content', rules: true, valueEnum: MappingData.Flex_content },
    { span: 24, formType: 'SELECT', name: 'partial_justify_content', label: 'justify-content', rules: true, valueEnum: MappingData.Flex_justify },
    { span: 24, formType: 'SELECT', name: 'partial_flex_direction', label: 'flex-direction', rules: true, valueEnum: MappingData.Flex_direction },
    { span: 24, formType: 'NUMBER', name: 'partial_width', label: '数据宽度', rules: true },
    { span: 24, formType: 'INPUT', name: 'partial_padding', label: '内填充', rules: true },
    { span: 24, formType: 'INPUT', name: 'partial_margin', label: '外间距', rules: true },
    { span: 24, formType: 'COLOR', name: 'partial_back', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'partial_deg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'partial_radius', label: '圆角角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'partial_borderSize', label: '边框宽度', rules: true },
    { span: 24, formType: 'RADIO', name: 'partial_emptyBorderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType, },
    { span: 24, formType: 'COLOR', name: 'partial_borderColor', label: '边框颜色', rules: true },

    { formType: 'TempTitle', label: '图标设置', name: 'ImageTextA04_icon' },
    { span: 24, formType: 'RADIO', name: 'icon_status', label: '图标样式', rules: true, valueEnum: MappingData.System__FilesType },
    {
        span: 24, formType: 'RADIO', name: 'icon_iconFill', label: '跟随字体颜色', rules: true, valueEnum: MappingData.IsEnabledBool,
        jugdeField: 'icon_status', jugdeValue: ['icon']
    },
    { span: 24, formType: 'COLOR', name: 'icon_iconColor', label: '独立图标颜色', rules: true, jugdeField: 'icon_status', jugdeValue: ['icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_iconSize', label: '图标尺寸', rules: true, jugdeField: 'icon_status', jugdeValue: ['icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_imgWidth', label: '图片宽度', rules: true, jugdeField: 'icon_status', jugdeValue: ['img'] },
    { span: 24, formType: 'NUMBER', name: 'icon_imgHeight', label: '图片高度', rules: true, jugdeField: 'icon_status', jugdeValue: ['img'] },
    { span: 24, formType: 'INPUT', name: 'icon_padding', label: '内填充', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'INPUT', name: 'icon_margin', label: '外间距', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'COLOR', name: 'icon_back', label: '背景颜色', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_deg', label: '背景角度', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_radius', label: '圆角角度', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_borderSize', label: '边框宽度', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    {
        span: 24, formType: 'RADIO', name: 'icon_borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType,
        jugdeField: 'icon_status', jugdeValue: ['img', 'icon']
    },
    { span: 24, formType: 'COLOR', name: 'icon_borderColor', label: '边框颜色', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_shadowX', label: 'X轴偏移', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_shadowY', label: 'Y轴偏移', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'NUMBER', name: 'icon_shadowS', label: '阴影尺寸', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },
    { span: 24, formType: 'COLOR', name: 'icon_shadowC', label: '阴影颜色', rules: true, jugdeField: 'icon_status', jugdeValue: ['img', 'icon'] },

    { formType: 'TempTitle', label: '数值区域', name: 'ImageTextA04_content' },
    { span: 24, formType: 'SELECT', name: 'content_align_items', label: 'align-items', rules: true, valueEnum: MappingData.Flex_items },
    { span: 24, formType: 'SELECT', name: 'content_align_content', label: 'align-content', rules: true, valueEnum: MappingData.Flex_content },
    { span: 24, formType: 'SELECT', name: 'content_justify_content', label: 'justify-content', rules: true, valueEnum: MappingData.Flex_justify },
    { span: 24, formType: 'SELECT', name: 'content_flex_direction', label: 'flex-direction', rules: true, valueEnum: MappingData.Flex_direction },
    { span: 24, formType: 'INPUT', name: 'content_padding', label: '内填充', rules: true },
    { span: 24, formType: 'INPUT', name: 'content_margin', label: '外间距', rules: true },
    { span: 24, formType: 'COLOR', name: 'content_back', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'content_deg', label: '背景角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'content_radius', label: '圆角角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'content_borderSize', label: '边框宽度', rules: true },
    { span: 24, formType: 'RADIO', name: 'content_emptyBorderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType, },
    { span: 24, formType: 'COLOR', name: 'content_borderColor', label: '边框颜色', rules: true },

    { formType: 'TempTitle', label: '描述文字设置', name: 'ImageTextA04_describe' },
    { span: 24, formType: 'COLOR', name: 'describe_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_deg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'describe_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'describe_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'describe_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'describe_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'describe_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '数据文字设置', name: 'ImageTextA04_field' },
    { span: 24, formType: 'INPUT', name: 'field_padding', label: '内填充', rules: true },
    { span: 24, formType: 'COLOR', name: 'field_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_deg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'field_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'field_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'field_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'field_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'field_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'field_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '单位文字设置', name: 'ImageTextA04_unit' },
    { span: 24, formType: 'COLOR', name: 'unit_fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_deg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'unit_fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'unit_fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'unit_fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'unit_shadowB', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'unit_shadowC', label: '阴影颜色', rules: true },
    { formType: 'TempTitle', label: '辅助背景', name: 'ImageTextA04_assis' },
    { span: 24, formType: 'COLOR', name: 'assis_fill', label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'assis_deg', label: '旋转角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'assis_height', label: '背景高度', rules: true },
    { span: 24, formType: 'SELECT', name: 'assis_position', label: '定位位置', rules: true, valueEnum: MappingData.topORbtm },
    { span: 24, formType: 'NUMBER', name: 'assis_distance', label: '定位距离', rules: true },



]

// ??? 占位模块
// *** 文字占位A02
const PlaceholderA02 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { formType: 'TempTitle', label: '背景设置', name: 'PlaceholderA02__Back' },
    { span: 24, formType: 'RADIO', name: 'backType', label: '背景类型', rules: true, valueEnum: MappingData.Start__backType },
    // 颜色
    { span: 24, formType: 'COLOR', name: 'backColor', label: '背景颜色', rules: true, jugdeField: 'backType', jugdeValue: ['color'] },
    { span: 24, formType: 'NUMBER', name: 'backColor__Deg', label: '径向角度', jugdeField: 'backType', jugdeValue: ['color'] },
    // 图片
    { span: 24, formType: 'INPUT', name: 'backImage', label: '背景图片', rules: true, jugdeField: 'backType', jugdeValue: ['image'] },
    // 视频
    { span: 24, formType: 'INPUT', name: 'backVideo', label: '背景视频', rules: true, jugdeField: 'backType', jugdeValue: ['video'] },
    { span: 24, formType: 'NUMBER', name: 'backVideoStart', label: '循环开始', jugdeField: 'backType', jugdeValue: ['video'] },
    { span: 24, formType: 'NUMBER', name: 'backVideoEND', label: '循环结束', jugdeField: 'backType', jugdeValue: ['video'] },
    ...flexConfig,
    { formType: 'TempTitle', label: '文字列表', name: 'PlaceholderA02__List' },
    // 额外渲染
    { span: 24, formType: 'SELECT', name: 'extraRender', label: '额外渲染', rules: true, valueEnum: MappingData.Start__textList },
    { span: 24, formType: 'INPUT', name: 'backPadding', label: '背景内填充', rules: true, jugdeField: 'extraRender', jugdeValue: ['back'] },
    { span: 24, formType: 'INPUT', name: 'backMargin', label: '背景外间距', rules: true, jugdeField: 'extraRender', jugdeValue: ['back'] },
    { span: 24, formType: 'NUMBER', name: 'borderRadius', label: '背景圆角', rules: true, jugdeField: 'extraRender', jugdeValue: ['back'] },
    { span: 24, formType: 'NUMBER', name: 'borderSize', label: '边框尺寸', rules: true, jugdeField: 'extraRender', jugdeValue: ['back'] },
    {
        span: 24, formType: 'RADIO', name: 'borderType', label: '边框类型', rules: true, valueEnum: MappingData.Style__BorderType,
        jugdeField: 'extraRender', jugdeValue: ['back']
    },
    { span: 24, formType: 'COLOR', name: 'borderColor', label: '边框颜色', rules: true, jugdeField: 'extraRender', jugdeValue: ['back'] },

    { span: 24, formType: 'NUMBER', name: 'frontMargin', label: '前置间距', rules: true, jugdeField: 'extraRender', jugdeValue: ['front'] },
    { span: 24, formType: 'NUMBER', name: 'frontWidth', label: '样式宽度', rules: true, jugdeField: 'extraRender', jugdeValue: ['front'] },
    { span: 24, formType: 'NUMBER', name: 'frontHeight', label: '样式高度', rules: true, jugdeField: 'extraRender', jugdeValue: ['front'] },
    {
        span: 24, formType: 'SELECT', name: 'frontStyle', label: '前置样式', rules: true, valueEnum: MappingData.Start__frontStyle,
        jugdeField: 'extraRender', jugdeValue: ['front']
    },
    {
        span: 24, formType: 'LIST', name: 'textList', label: '文字列表',
        children: [
            { span: 24, formType: 'INPUT', name: 'text', label: '文字内容', rules: true },
            { span: 24, formType: 'COLOR', name: 'color', label: '额外颜色' },
            { span: 24, formType: 'NUMBER', name: 'colorDeg', label: '颜色角度' },
        ]
    },
    { formType: 'TempTitle', label: '文字样式', name: 'PlaceholderA02__Style' },
    { span: 24, formType: 'COLOR', name: 'fill', label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'fillDeg', label: '文字角度', rules: true },
    { span: 24, formType: 'NUMBER', name: 'fontSize', label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: 'fontFamily', label: '文字字体', rules: true, valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: 'fontWeight', label: '文字加粗', rules: true, valueEnum: MappingData.Font__WeightInt },
    { span: 24, formType: 'RADIO', name: 'fontStyle', label: '文字倾斜', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'NUMBER', name: 'shadowX', label: 'X轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowY', label: 'Y轴偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: 'shadowS', label: '阴影尺寸', rules: true },
    { span: 24, formType: 'COLOR', name: 'shadowC', label: '阴影颜色', rules: true },
]


// ??? 独立模块
// *** 视频监控
const OnlyA01 = [
    { span: 24, formType: 'HIDDEN', name: 'i', label: 'i', rules: true },
    { span: 24, formType: 'INPUT', name: 'data_apiName', label: '数据集合' },
    { span: 24, formType: 'INPUT', name: 'data_dataLevel', label: '数据层级' },
    { formType: 'TempTitle', label: '显示方式', name: 'OnlyA01_number' },
    {
        span: 24, formType: 'LIST', name: 'renderNumber', label: '显示方式',
        children: [
            { span: 24, formType: 'NUMBER', name: 'width', label: '单组宽度', rules: true },
            { span: 24, formType: 'NUMBER', name: 'height', label: '单组高度', rules: true },
        ]
    },
]


export const LayoutConfig = {
    modelConfig,
    navConfig,

    Options01,
    Options02,
    Options03,
    OptionsComA01,

    CustomizeA01,

    ImageTextA01,
    ImageTextA02,
    ImageTextA03,
    ImageTextA04,

    PlaceholderA02,

    OnlyA01
}